The present invention relates generally to database management systems. More particularly, the present invention relates to the creation and manipulation of an efficient database structure suitable for use with characterization data having a plurality of variable test conditions.
The prior art is replete with database management systems (DBMSs) that control the structuring, writing, organization, and reading of data stored in a database. The prior art also contains a number of techniques for processing and formatting data for insertion into a database. However, many prior art techniques may not be suitable for applications having large amounts of data, complex data, or undefined data parameters. For example, semiconductor wafer manufacturers often have the need to process, format, and review characterization data associated with the individual semiconductor devices. Such characterization data may include electronic test results obtained under a large number of varying test conditions. For example, test data points may be obtained from a single semiconductor device by varying any combination of one or more of the following conditions: supply voltage, supply current, temperature, input frequency, and other test parameters. In addition, a single semiconductor device may be subjected to a plurality of different tests, e.g., RF S-Parameter tests, output frequency tests, and output power tests.
The number of tests, the number of devices tested, and the number of different test conditions will dictate the size of the characterization data file associated with a given lot of semiconductor wafers. In practice, such test data may be associated with thousands (or millions) of individual data points. Furthermore, each individual data point may be associated with any number of varying test conditions, thus requiring a significant amount of data processing and storage capability.
The transfer or downloading of raw data into prior art data analysis systems may be inconveniently time consuming and, therefore, costly. In addition, large amounts of data related to repeated test conditions may require an unnecessarily large amount of storage space to accommodate multiple entries associated with different test points. The resultant database may contain duplicate data entries that are inefficiently structured. In addition, the resultant database may be difficult to manipulate and traverse during data analysis.
Many prior art DBMSs are configured to accommodate a finite number of known data fields. For example, a system used to collect and process semiconductor characterization data may be limited to common data fields associated with typical testing procedures utilized in the semiconductor industry. These systems are not capable of handling additional data fields or test conditions without modification. Accordingly, the inflexible nature of such prior art DBMSs may be impractical for some applications.
A preferred embodiment of the present invention provides a DBMS that is capable of structuring a large amount of data points having a number of associated conditions or attributes. A practical embodiment is utilized for the collection and analysis of semiconductor characterization data. A DBMS according to the present invention processes the incoming data in a manner that takes advantage of repeated conditions. Such efficient handling and processing allows the data to be quickly collected in comparison to prior art techniques. In addition, the resultant database structure requires less storage space and the data stored therein can be efficiently accessed and extracted. Furthermore, a DBMS according to the present invention can automatically and dynamically react to the given size of the data file and to the particular conditions and attributes associated with the individual data points.
The above and other aspects of the present invention may be carried out in one form by a method for structuring a set of data points. The method involves obtaining a plurality of data points, each having a data value and zero or more conditions associated therewith, assigning a variable identifier to each unique condition associated with the data points, designating a variable set handle for each unique combination of variable identifiers, and relating individual data values to one of the variable set handles.